﻿#region Using Directives



#endregion
namespace org.neo4j.graphdb
{
    /// <summary>
    /// Defines a traversal order as used by the traversal framework.<p>
    ///Nodes can be traversed either <seealso cref="BREADTH_FIRST"/> or
    ///<seealso cref="DEPTH_FIRST"/>. A depth first traversal is often more
    ///likely to find one matching node before a breadth first traversal. A
    ///   breadth first traversal will always find the closest matching nodes
    ///first, which means that <seealso cref="TraversalPosition#depth()"/> will return the
    /// length of the shortest path from the start node to the node at that
    ///position, which is not guaranteed for depth first traversals.
    /// </p>
    /// A breadth first traversal usually needs to store more state about where
    /// the traversal should go next than a depth first traversal does. Depth
    ///first traversals are thus more memory efficient. 
    /// </summary>
    public enum Order
    {
        /// <summary> 
        /// Sets a depth first traversal meaning the traverser will go as deep as
        /// possible (increasing depth for each traversal) before traversing next
        /// relationship on same depth. 
        /// </summary>
        DEPTH_FIRST,
        /// <summary> 
        /// Sets a breadth first traversal meaning the traverser will traverse
        /// all relationships on the current depth before going deeper.
        /// </summary>     
        BREADTH_FIRST
    }
}
